4
תגובות
שלום,
יש לי את הקוד הבא:

<?php
  if(isset($_POST['login'])) {
   
    $pass = md5($_POST['password']);
    $user = $_POST['username'];
   
    $take = $database->query("SELECT * FROM `users` WHERE `username` = '{$user}', `password` = '{$pass}'");
    if($take->num_rows == "1")
    {
           setcookie('username',$username,time()+30);
        setcookie('password',$password,time()+30);
        $_COOKIE['username'] = $username;
        $_COOKIE['password'] = $password;
        echo "התחברתה בהצלחה !";
    }
    else {
    printf("Errormessage: %s\n", $database->error);
    }
  }
  ?>


וכאשר אני ניגש לדף אני מקבל את השגיאה הבאה:

Errormessage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' `password` = '*******************'' at line 1

לא הבנתי מה הבעיה ! תוכלו לעזור לי?

4 תשובות

avatar ענה Ben ב 16 למרץ 2013 #

if($take->num_rows == "1")


ה 1 לא אמור להיות בגרש, זה אמור להיות ככה:
if($take->num_rows == 1)


לגבי כל הקוקיז, תקרא את המדריך של אלכס על קוקיז, ואת ההמשך שלו על הסשנים.

ואתה לא צריך לשמור בכלל בעוגיה את הסיסמא, מספיק השם משתמש, ואז לפי השם משתמש אתה בודק אם המשתמש מחובר (בכך שהסשן\עוגיה קיים) ואם לא אז תציג לו דף התחברות.

avatar ענה Pazcode ב 16 למרץ 2013 #

Ben ,אני יודע ..

פשוט חיפשתי מדריך לזה, כי לא כ"כ הסתדרתי..
רציתי לסדר אבל רציתי לטפל קודם בשגיאה .

מעבר לזה זה לא עבד ..

avatar ענה intval ב 16 למרץ 2013 #

שני תנאים מפרידים על ידי המילים and או or ולא בפסיק

where a=1 AND b=2

avatar ענה Pazcode ב 16 למרץ 2013 #

תודה !!